--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
vendor/lxmfy/lxmfy/lxmf_fields.py 10d78fbbfba7ea5152368e4e3b5e8dccae5da8df (10d78fbb) Text, 1.44 KB
T8b949e"""LXMF field constants and helpers for structured commands and results."""
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787LXMFT7ee787.T7ee787LXMF Tff7b72import Te6edf3FIELD_COMMANDSTb4b4b4, Te6edf3FIELD_RESULTS
Tff7b72except Tf85149ImportErrorTb4b4b4:
Te6edf3FIELD_COMMANDS Tff7b72= T79c0ff0x09
Te6edf3FIELD_RESULTS Tff7b72= T79c0ff0x0A
Tff7b72def Td2a8ffunpack_commandsTb4b4b4(Te6edf3fieldsTb4b4b4: Tffa657dict Tff7b72| Tff7b72NoneTb4b4b4) Tff7b72-Tff7b72> Tffa657listTb4b4b4[Tffa657dictTb4b4b4]Tb4b4b4:
T8b949e"""Extract command entries from LXMF message fields.
Supports ``FIELD_COMMANDS`` being a single dict or a list of dicts.
Each dict should contain at least a ``command`` or ``cmd`` key.
Args:
fields: The ``fields`` dict from an :class:`LXMF.LXMessage`.
Returns:
A list of command dicts.
"""
Tff7b72if Tff7b72not Te6edf3fieldsTb4b4b4:
Tff7b72return Tb4b4b4[Tb4b4b4]
Te6edf3raw Tff7b72= Te6edf3fieldsTff7b72.Td2a8ffgetTb4b4b4(Te6edf3FIELD_COMMANDSTb4b4b4)
Tff7b72if Te6edf3raw Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72return Tb4b4b4[Tb4b4b4]
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3rawTb4b4b4, Tffa657dictTb4b4b4)Tb4b4b4:
Tff7b72return Tb4b4b4[Te6edf3rawTb4b4b4]
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3rawTb4b4b4, Tffa657listTb4b4b4)Tb4b4b4:
Tff7b72return Tb4b4b4[Te6edf3entry Tff7b72for Te6edf3entry Tff7b72in Te6edf3raw Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3entryTb4b4b4, Tffa657dictTb4b4b4)Tb4b4b4]
Tff7b72return Tb4b4b4[Tb4b4b4]
Tff7b72def Td2a8ffpack_resultTb4b4b4(Te6edf3resultTb4b4b4, Te6edf3request_idTb4b4b4: Tffa657str Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4, Te6edf3statusTb4b4b4: Tffa657str Tff7b72= Ta5d6ff"Ta5d6ffokTa5d6ff"Tb4b4b4) Tff7b72-Tff7b72> Tffa657dictTb4b4b4:
T8b949e"""Pack a result into a ``FIELD_RESULTS``-compatible dict.
Args:
result: The result payload (any serialisable value).
request_id: Optional correlation ID from the original request.
status: Status string, e.g. ``"ok"`` or ``"error"``.
Returns:
A dict suitable for ``FIELD_RESULTS``.
"""
Te6edf3data Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6ffresultTa5d6ff"Tb4b4b4: Te6edf3resultTb4b4b4, Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4: Te6edf3statusTb4b4b4}
Tff7b72if Te6edf3request_id Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3dataTb4b4b4[Ta5d6ff"Ta5d6ffrequest_idTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3request_id
Tff7b72return Te6edf3data
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────